/*
这里的L.length是线性表的长度，MAXSIZE是线性表的最大长度
*/
#include <stdio.h>
#define MaxSize 10

typedef struct
{
    /* data */
    int data[MaxSize];
    int length;
} SqList;

void InitList(SqList &L)
{
    for (int i = 0; i < MaxSize; i++)
    {
        L.data[i] = 0; // 将所有数据元素设置为默认初始值
    }
    L.length = 0; // 顺序表初始长度为0
}

bool ListInsert(SqList &L, int i, int e)
{
    if (i < 1 || i > L.length + 1)
    {
        return false;
    }
    if (L.length >= MaxSize)
    {
        return false;
    }

    for (int j = L.length; j >= i; j--)
    {
        L.data[j] = L.data[j - 1];
    }
    L.data[i - 1] = e;
    L.length++;
    return true;
}

int main()
{
    SqList L;
    InitList(L);
    ListInsert(L, 1, 1);
    ListInsert(L, 2, 2);
    ListInsert(L, 3, 3);
    for (int i = 0; i < L.length; i++)
    {
        printf("%d ", L.data[i]);
    }
    return 0;
}